Color cast is generally considered an overall color imbalance in an image, as if viewed through a color filter. Color cast appears when one dominant color appears as a trace in all other colors in an image. The predominance of the color ruins the whole image. Many images will have a single-color cast, where for example, the entire image has a blue tint, or a red tint, or a yellow tint. There are also color casts with hues between primary colors, such as yellow/green as opposed to a pure yellow cast. There are many techniques for removing color cast, such as background removal and hue shift. Background removal linearly stretches or normalizes each separation such that the lightest pixels are mapped into white. Hue shift adds or subtracts a color at each pixel.
Previous methods for performing color cast removal or hue shift in an image path have used RGB space or CMY space, where three tone reproduction curves (TRC's) can be used to make small adjustments in the separations. TRC's are also used to describe adjustments to an image (whether for lightness/darkness, midtone contrast, highlight emphasis, color cast, etc.). Similar Look-Up Tables (LUT's) are also used to describe non-tone related adjustments or transfer functions often included in a conversion from one color space to another color space, for example, from RGB to CMY, from RGB to L*a*b*, from L*a*b* to CMY. These LUT's are often collectively referred to as TRC's although their use may not be tone related. TRC's or LUT's may be implemented in a graphical form (see FIGS. 1-3) or as a table stored in memory.
When the image path is processing in a different color space (such as CIE L*a*b*), changing into and back out of RGB or CMY can be time consuming and may result in image degradation due to quantization errors and round-off errors. When the image path is processing in L*a*b* space, simply adding an offset in a* and b* can result in a change in an established white point as well as illegal values outside the color gamut. Finding a white point and a black point in an image and linearly adjusting the separation image values between these points has the effect of removing most of the color cast in an image, particularly in the highlights and shadows. But some residual color cast may remain in the midtones, so a method for removing color cast in the midtones is desired.
U.S. Pat. No. 6,469,805 to Behlok for “Post Raster Image Processor Controls for Digital Color Image Printing” describes a system which allows a user to adjust image characteristics of a post-processing contone image to improve the image aesthetics. The user may adjust image characteristic such as lightness/darkness, midtone contrast, highlight emphasis, shadow emphasis and color cast. The user inputs signals through a user interface which are applied to a image control, which adjusts the characteristics of the printed image by modifying the tone reproduction curves (TRC's) with which the post-RIP contone file is printed. The adjustments are applied in CMYK color space. Behlok relies on histograms to generate the appropriate TRC modifications. Behlok does not address the generation of the specific TRC's to adjust the particular image characteristics.
U.S. Pat. No. 4,972,257 to Birnbaum, et al. for “Operator Adjustable Color Image Processing” discusses color correction in L*a*b* space, but the described techniques are not suitable for color cast correction. In Birnbaum's method, a measured set of primary color densities is changed to a set of colorimetric conditions. The operator adjusts the colorimetric conditions using TRC's so that the copy has the desired hue, saturation and darkness.
U.S. Pat. No. 5,233,413 to Fuchsberger, for “Electronic Image Processing with Automatic Color Corrections” describes a method of automatically detecting color cast and compensating for it. In Fuchsberger's method, the original RGB image is scanned and a luminance value generated for each of multiplicity of regions of the original image. The luminance values are divided into segments so that different segments are classified as color dominant or color non-dominant. At least one second value is calculated for each of the segments and the calculation includes assigning different weights to dominant and non-dominant regions such that the second value for each segment represents an overall color cast for the regions of the respective segment. Each of the second values is adjusted with reference to the gray point to generate a respective third value and a correction plot for each of the primary colors. The chrominance-luminance plots may take the form of a series of connected straight line segments or a monotonically increasing curve. The adjusted overall chrominance values represent the original overall chrominance values as compensated for color casts. The adjustments are applied in RGB color space. Automatic color cast determination does not afford an operator the ability to adjust for color cast to make a more humanly aesthetic color appearance. Also, adjustments in RGB space may not transfer linearly to L*a*b* space.
U.S. Pat. No. 6,484,631 to Degani, et al. for “Method and System of Individualizing Tone Reproduction Curves Calibration and Applying Thereof” describes a method of updating individualized calibrated tone reproduction curves corresponding to a distinct media type and halftone type. Degani also describes a method of adjusting a plurality of TRC's based on the calibration of a single TRC using a reference media and a reference halftone(s). All the operations are performed on CMY&K separations. L*a*b* may be used in determining the current calibration, but is not used for mapping the new calibration into a family of stored calibrations.